package cn.ad.server.persistence;

import cn.ad.server.domain.ad.AdSpace;
import cn.ad.server.domain.ad.GuidValueObject;

public interface AdSpaceRepository {

	AdSpace findAdSpaceById(long id);

	void warmUpAll();

	// FIXME 需要移除
	void warmUpAdFormat();

	void warmRatio();

	AdSpace getAdSpaceByIdFrmDB(long id);

	void warmUpAllAssociation();

	/**
	 * 
	 * @param guidVO
	 * @param channelId
	 * @return
	 * @deprecated 代码重构整理，将缓存相关处理方法移植到持久化层完成，参见{@link GuidRepository#countGuidClick(GuidValueObject, int)}
	 */
	@Deprecated
	long countGuidClick(GuidValueObject guidVO, int channelId);

	/**
	 * 
	 * @param guidVO
	 * @param channelId
	 * @return
	 * @deprecated 代码重构整理，将缓存相关处理方法移植到持久化层完成，参见{@link GuidRepository#countGuidImpressions(GuidValueObject, int)}
	 */
	@Deprecated
	long countGuidImpressions(GuidValueObject guidVO, int channelId);

//	/**
//	 * 生成并存储GUID对象
//	 * @param guidVo GUID对象
//	 * @param channelId 接入渠道标识，GUID对象在缓存中的失效时间由接入的频道来决定
//	 * @return
//	 * @deprecated 代码重构将GUID对象的相关方法移植到{@link GuidRepository}接口中，参考{@link GuidRepository#storeGuid(GuidValueObject, int)}
//	 */
//	@Deprecated
//	String storeGuid(GuidValueObject guidVo, int channelId);
//
//	void removeGuid(String guid);
//	
//	/**
//	 * 根据GUID缓存KEY字符串查找GUID对象
//	 * @param guid
//	 * @return 
//	 * @deprecated 代码重构将GUID对象的相关方法移植到{@link GuidRepository}接口中，参考{@link GuidRepository#findGuidVo(String)} 
//	 */
//	@Deprecated
//	GuidValueObject findGuidVo(String guid);
}
